package com.zcg.blogger.service;

import java.util.List;

import com.zcg.blogger.model.User;

public interface UserService {
	/**
	 * 新增一个用户
	 * @param user
	 */
	public void add(User user);

	/**
	 * 更新用户信息
	 * @param user
	 */
	public void update(User user);

	/**
	 * 删除一个用户
	 * @param user
	 */
	public void delete(User user);

	/**
	 * 根据id取得用户
	 * @param id
	 * @return
	 */
	public User loadById(int id);
	
	/**
	 * 查看是否存在用户
	 * @param username
	 * @return
	 */
	public boolean loadByName(String username);

	/**
	 * 取出用户列表
	 * @return
	 */
	public List<User> loadUsers();

	/**
	 * 根据id取出用户
	 * @param userId
	 * @return
	 */
	public User getUserById(int userId);
	
	/**
	 * 判断是否存在用户名密码正确的用户
	 * @param username
	 * @param password
	 * @return
	 */
	public User check(String username,String password);
	
	/**
	 * 向指定邮箱发送找回密码邮件
	 * @param email
	 * @throws Exception 
	 */
	public void sendEmail(String email) throws Exception;
	
	/**
	 * 根据邮箱更改密码
	 * @param email
	 * @param password
	 */
	public void updatePassword(String email,String password);

	/**
	 * 根据id和操作数取得对象
	 * @param id
	 * @param operate
	 * @return
	 */
	List<Object> loadObjectsByOperate(int id, int operate);
	
	/**
	 * 像指定邮箱发送验证码
	 * @param 邮箱
	 * @throws Exception 
	 */
	void sendCheckCode(String email) throws Exception;
	
	/**
	 * 根据邮箱和验证码更新邮箱
	 * @param Email
	 * @param checkCode
	 */
	void updateEmail(String email,String checkCode,int id);
	
	/**
	 * 根据旧密码和用户id更新密码
	 * @param oldPassword
	 * @param newPassword
	 * @param id
	 */
	void updatePassword(String oldPassword,String newPassword,int id);
	
	/**
	 * 根据用户id更新头像
	 * @param avatar
	 * @param id
	 */
	void updateAvatar(String avatar,int id);
}
